# 视频格式转换脚本 (PowerShell 版本)
# 将 MP4 视频转换为 WebM 格式以优化加载性能

# 输入文件
$INPUT_FILE = "public\background-video.mp4"
# 输出文件
$OUTPUT_FILE = "public\background-video.webm"

# 检查输入文件是否存在
if (-not (Test-Path $INPUT_FILE)) {
    Write-Host "错误：输入文件 $INPUT_FILE 不存在" -ForegroundColor Red
    exit 1
}

# 检查是否安装了 ffmpeg
try {
    $ffmpegVersion = ffmpeg -version
    Write-Host "检测到 FFmpeg:" -ForegroundColor Green
    Write-Host $ffmpegVersion[0] -ForegroundColor Green
} catch {
    Write-Host "错误：未安装 FFmpeg，请先安装 FFmpeg" -ForegroundColor Red
    Write-Host "可以从 https://ffmpeg.org/download.html 下载并安装" -ForegroundColor Yellow
    exit 1
}

Write-Host "开始转换视频格式..." -ForegroundColor Cyan
Write-Host "输入文件: $INPUT_FILE" -ForegroundColor Cyan
Write-Host "输出文件: $OUTPUT_FILE" -ForegroundColor Cyan

# 使用 ffmpeg 转换视频
# VP9 编码，适合 WebM 格式
ffmpeg -i "$INPUT_FILE" -c:v libvpx-vp9 -crf 30 -b:v 0 -b:a 128k -c:a libopus "$OUTPUT_FILE"

# 检查转换是否成功
if (Test-Path $OUTPUT_FILE) {
    Write-Host "视频转换完成！" -ForegroundColor Green
    
    # 显示文件大小信息
    $originalSize = (Get-Item $INPUT_FILE).Length / 1MB
    $convertedSize = (Get-Item $OUTPUT_FILE).Length / 1MB
    
    Write-Host "文件大小对比:" -ForegroundColor Cyan
    Write-Host "原始文件 ($INPUT_FILE): $([math]::Round($originalSize, 2)) MB" -ForegroundColor White
    Write-Host "转换文件 ($OUTPUT_FILE): $([math]::Round($convertedSize, 2)) MB" -ForegroundColor White
    
    # 计算压缩率
    $compressionRatio = (($originalSize - $convertedSize) / $originalSize) * 100
    Write-Host "压缩率: $([math]::Round($compressionRatio, 2))%" -ForegroundColor Yellow
} else {
    Write-Host "转换失败" -ForegroundColor Red
    exit 1
}